package invoicesystem.service;

import invoicesystem.entry.InvoicingRecord;
import invoicesystem.pojo.InvoicingApplyList;
import invoicesystem.pojo.SelectTitleAndInvoic;
import invoicesystem.pojo.TitleAndAddress;
import invoicesystem.util.PageHelper;


import java.util.ArrayList;

public interface InvoicingRecordService {
    /**
     *  查询
     * @param enterprise_id  来自登录的时获得的企业id
     * @return  获取发票抬头及地址信息
     */
    TitleAndAddress selectTitleAndAddress(Integer enterprise_id);

    /**
     *查询
     * @return 所有申请开发票的记录
     */
    ArrayList<InvoicingApplyList> selectall();

    /**
     * 根据申请时间，抬头，发票金额范围进行选择查询
     * @param selectTitleAndInvoic 查询的信息
     * @return 符合条件集合
     */
    ArrayList<InvoicingApplyList>  selectByCreate_timeOrByTitleOramount(SelectTitleAndInvoic selectTitleAndInvoic, PageHelper pageHelper);



    /**
     *  开票，修改标头及地址信息
     * @param title 表头
     * @return 1成功 0失败
     */
    int updateTitleAndAddress(String title);

    /**
     * 开票记录表添加
     * @param invoicingRecord 添加信息
     * @return 1成功 0失败
     */
    boolean insertInvoicingRecord(InvoicingRecord invoicingRecord);

    /**
     * 开票记录表修改
     * @param invoicingRecord 修改的信息
     * @return 1成功 0失败
     */
    //int updateInvoicingRecord(InvoicingRecord invoicingRecord);

    /**
     * 根据对应操作的发票id进行修改状态
     * @param id 已开票的发票列表id
     * @return 2成功
     */
    int returnInvoicingRecord(Integer id);

    /**
     * liu
     * @param id
     * @return
     */
    ArrayList selectMultitable(Integer id);

    /**
     * liu
     * @param email_id
     * @return
     */
    ArrayList selectemail_id(Integer email_id);

    //用于分页，查询数据条数
    int selectInvoicSize(SelectTitleAndInvoic selTitle);

    boolean updateInvoicingRecord(InvoicingRecord invoicingRecord);

}
